<工程化>git-使用
git 概念
- 工作区(workspace):存放本地项目文件
 - 暂存区(stage):通过add命令将工作区文件存放到暂存区
 - 本地仓库(repository):使用commit命令将暂存区文件添加到本地仓库
 - 远程仓库(remote):github、gitlab等托管仓库
 

git config
- 配置文件存储位置:–global /etc/gitconfig、–system ~/.gitconfig、–local 工作区/.git/config
 
1  | -- global对当前用户所有仓库有效  | 
git clone
- 除了HTTP(s)以外,还支持SSH、Git、本地文件协议等
 
1  | git clone <版本库的网址> <本地目录名>  | 
git add
- 将工作区修改添加到暂存区
 
1  | // 添加当前目录所有修改  | 
git clone
- 除了HTTP(s)以外,还支持SSH、Git、本地文件协议等
 
1  | git clone <版本库的网址> <本地目录名>  | 
git status
- 显示工作目录和暂存区的状态
 
git diff
1  | // 显示工作区与暂存区的差别  | 
git commit
1  | // 将暂存区提交  | 
git reset
- soft: 不改变工作区和暂存区,只移动 HEAD 到指定 commit。
 - mixed: 只改变暂存区,不改变工作区。这是默认参数,通常用于撤销git add。
 - hard:改变工作区和暂存区到指定 commit。该参数等同于重置,可能会引起数据损失。
 
1  | // 将当前分支指针倒3个commit,并改变暂存区  | 
- 一些撤销操作
 
1  | // 撤销暂存区的内容  | 
git rm
- 用于从工作区或者索引中删除文件,提交commit时会将文件的删除操作提交
 - 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。
 
1  | // 删除工作区的文件  | 
git branch
1  | // 查看分支列表  | 
git checkout
1  | // 切换分支  | 
git merge
1  | // 将dev1合并到当前分支  | 
git mergetool
git log
1  | // 显示当前分支日志  | 
git stash
1  | // 暂时保存没有提交的工作  | 
git tag
1  | // 列出tag  | 
git fetch
1  | // 拉取所有远程分支  | 
git pull
1  | // 拉取远程分支与本地分支合并  | 
git push
1  | 
git remote
git rebase
git with ssh
- 参考:官方文档
 
- 查看是否存在ssh配置
 
1  | // 查看.ssh文件夹里是否存在key相关文件(.pub文件)  | 
- 新建ssh key文件
 
1  | // 执行命令后第一步需要设置key文件名称  | 
- 修改config文件,编辑.ssh文件夹下config文件,没有创建
 
1  | Host *  | 
- 添加秘钥
 
1  | eval $(ssh-agent -s)  | 
- github\gitlab上添加公钥
 
1  | // 测试连接情况  |